tg-me.com/phpproglib/5658
Last Update:
🚀 Как оптимизировать Laravel-приложение: практические советы
Когда приложение растёт или работает с большими объёмами данных, оптимизация — не просто желание, а необходимость. Laravel — мощный фреймворк, который при грамотном подходе может выдавать высокую производительность.
Разбираем ключевые техники:
1️⃣ Оптимизация запросов к базе
Eager Loading: избегайте проблемы N+1 запросов, загружая связи заранее через with()
.
Выбирайте только нужные колонки с помощью select()
для уменьшения объёма передаваемых данных.
Обрабатывайте большие наборы данных по частям через chunkById()
— так снижается нагрузка на память.
Используйте toBase()
, если нужна простая выборка без моделей и лишних данных (без отношений и событий).
2️⃣ Кэширование
Кэшируйте дорогостоящие запросы через Cache::remember()
.
Используйте кэш конфигураций и шаблонов (config:cache
, view:cache
) для ускорения загрузки.
Рассмотрите пакеты типа spatie/laravel-responsecache
для кэширования ответов.
3️⃣ Ограничение запросов (Rate Limiting)
Защищайте API от перегрузок, используя встроенный middleware RateLimiter
. Можно настроить правила по IP, пользователям и ролям.
4️⃣ Индексация базы данных
Правильные индексы — основа производительности SQL-запросов. Laravel миграции позволяют легко добавлять индексы: уникальные, обычные, полнотекстовые.
5️⃣ Советы по Eloquent
Не загружайте лишние связи, используйте withOnly()
(Laravel 11).
Для получения одного столбца вместо get()
применяйте pluck()
.
Для тяжёлой логики используйте сырые запросы через DB::select()
.
6️⃣ Очереди и фоновая обработка
Перенесите тяжёлые задачи (отправка писем, интеграции, экспорты) в очереди с помощью Laravel Queues и обработчиков (Redis + Supervisor или Laravel Octane).
👉 Читать статью
BY Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/phpproglib/5658